home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / jazlib.arc / JZGETFAT.C < prev    next >
Text File  |  1988-12-18  |  1KB  |  43 lines

  1. /*
  2. ┌────────────────────────────────────────────────────────────────────────────┐
  3. │jzgetfat.c                                     │
  4. │Return a dynamically allocated fat table for the specifed disk. This can    │
  5. │then be used for cluster searches ala chkdsk.                     │
  6. │                                         │
  7. │Usage:                                      │
  8. │  char *wfat;                                     │
  9. │                                         │
  10. │  jzgetfat(&wfat , 0);                              │
  11. │                                         │
  12. │ (C) JazSoft Software by Jack A. Zucker (301) 794-5950              │
  13. └────────────────────────────────────────────────────────────────────────────┘
  14. */
  15.  
  16. jzgetfat( ffat , fdisk )
  17. char **ffat;
  18. int fdisk;    /* 0 = 'A' , 1 = 'B' etc */
  19. {
  20.   int woffset,w;   /* work integers */
  21.   char wbuf[512];    /* disk buffer     */
  22.   int werr;
  23.   TDISKBLK *wblock = (TDISKBLK *) wbuf;
  24.   char *malloc();
  25.  
  26.   diskinfo(fdisk,wbuf);     /* get disk parameters */
  27.  
  28.   /* bytes per sector * sectors per fat table */
  29.  
  30.   if ( ! (*ffat = malloc(wblock->bytes * wblock->sectfat))) {
  31.     printf("\nInsufficient Memory. Aborting...");
  32.     exit(-1);
  33.   }
  34.  
  35.   woffset = (int) *ffat;
  36.  
  37.   for (w = 1 ; w <= wblock->sectfat ; w ++) {
  38.     dosreads(fdisk , w , 1 ,woffset);  /* read fat sector */
  39.     woffset += wblock->bytes;           /* increment by sector size */
  40.   }
  41.  
  42. }
  43.